Method and apparatus for augmenting and analyzing response data

ABSTRACT

Providing, to a first user, variable options for viewing reports based on data in a data store, each of the variable options corresponding to an attribute of the data associated with the included users. Responsive to an indication of a selected variable option from the first user, determining that data associated with the first user in the data store does not include a value for an attribute of the data associated with the included users corresponding to the selected variable option. Responsive to a request sent to the first user to provide information concerning a value for the attribute corresponding to the selected variable option, receiving, and storing in association with the first user in the data store, information concerning the value for the attribute corresponding to the selected variable option. Subsequent to receiving the information, providing a report to the first user according to the selected variable option.

CROSS-REFERENCE TO RELATED APPLICATION

The instant application is a divisional application of co-pending U.S.patent application Ser. No. 16/112,267 entitled “METHOD AND APPARATUSFOR OBTAINING RESPONSES FROM USERS VIA COMMUNICATION SYSTEM,” filed Aug.24, 2018; which prior application claims the benefit of Provisional U.S.Patent Application Ser. No. 62/549,458 entitled “AUDIENCE INSIGHTS:AUGMENTING AND ANALYZING QUERY RESULTS WITH DEMOGRAPHICS, GEOGRAPHY ANDOTHER DATA,” filed Aug. 24, 2017; and claims the benefit of ProvisionalU.S. Patent Application Ser. No. 62/549,459 entitled “TARGETING CONTENTTO EXPLICIT, USER-PROVIDED DATA INCLUDING QUERY RESPONSES,” filed Aug.24, 2017; and claims the benefit of Provisional U.S. Patent ApplicationSer. No. 62/549,477 entitled “AGGREGATED MULTI-PARTY, MULTI MIXED-MEDIAQUERY AND DATA COLLECTION WITH PARTY-SPECIFIC SUBTOTALS,” filed Aug. 24,2017; and claims the benefit of Provisional U.S. Patent Application Ser.No. 62/549,479 entitled “SINGLE DESTINATION TO VIEW EXISTING SURVEYS ANDCREATE NEW ONES,” filed Aug. 24, 2017, the teachings of which priorapplications are incorporated herein by this reference.

FIELD

The instant disclosure relates generally to communication systems suchas polling or survey systems and, in particular, to techniques forobtaining responses from users in such systems.

BACKGROUND

Given the ubiquity of Internet and World Wide Web technologies, theopportunity to beneficially use such technologies for on-line polling orsurvey systems has been recognized for a number of years. Indeed,on-line, computer implemented polling or survey systems currently existin a variety of forms. However, numerous shortcomings with existingsystems have prevented realization of the full potential of on-linepolling or survey techniques.

Existing systems generally fall into one of two categories:general-purpose survey offerings that allow any pollster to create asurvey to ask one or more questions of an audience provided by thepollster, and offerings that provide or find audiences for pollsters,such as online survey panels that typically include known users whovolunteer to answer surveys, often for an incentive. While survey panelvendors maintain information about their panelists, that data is used totarget surveys to the desired audience, not to augment survey results.No existing general-purpose on-line computer-implemented surveytechnology augments survey results with additional data, such asdemographics and geography. Therefore, no existing general-purposeon-line survey technologies provide any insight beyond what can begained from the questions asked and responses given in the survey.

Similarly, online rating systems are a type of survey, and manyproviders of online reviews maintain persistent identities with dataabout each individual. However, these technologies do not allow users toview additional data (even if it exists) beyond the review results.Systems are known in which persistent user profiles are maintained, andmarket research customers are able to view aggregated results acrosssurveys. However, these are not general-purpose survey systems and donot allow any user to ask any question of any audience.

In addition, there is no existing on-line computer-implemented surveytechnology where anyone can create a question on any topic and thattallies or displays results by electoral district or politicalboundaries, such as U.S. Congressional Districts. More broadly, mostpublic opinion surveys (including telephone-based surveys) do not tallyor display results by electoral districts due to the considerableexpense involved, as every electoral district would require a separatepoll, and a well-designed probability poll costs approximately $100,000.Consequently, for example, none of the 535 U.S. CongressionalRepresentatives or 7,387 State Legislative Representatives havemeaningful data about their constituents' opinions, nor do theirrespective constituents. Thus, gaps exist in effective representationand accountability. Of course, people often express their opinions onsocial media and in online comment threads, however, these cannot beaccurately tallied, much less by electoral districts.

While online voting systems do exist, they do not lend themselves to theneeds of surveys and market research—they are designed for theparticular requirements of elections, and do not allow any user tocreate a question, nor augment results with demographics and otheruseful data.

Online surveys are inexpensive relative to traditional means ofassessing public opinion, so market researchers would much prefer to useonline surveys. However, online surveys cannot leverage well-known andtrusted techniques which leverage probability (random) samples to inferthe opinions of a larger population. There is no national list of emailaddresses from which respondents could be sampled, and there is nostandard convention for email addresses, as there is for phone numbers,that would allow random sampling. Because random sampling is notpossible, results cannot be extrapolated to larger populations withknown margins of error. Likewise, there is no way to reach everyoneonline, much less with a known or equal chance of being selected.Because of these limitations in the way online technologies work, it isimpossible to obtain random samples of the online population, andtherefore impossible to conduct probability polls of the onlinepopulation.

Instead, existing online survey solutions generally rely on small panelsof respondents—known individuals that agree to respond to surveys,typically for an incentive. Panel surveys have many limitations: onecannot use probability statistics to project results to largerpopulations with known margins of error; only panelists can respond;very few people participate in online panels, so results can rarely bebroken down by meaningful subsets or geographies; and these“professional respondents” do not necessarily provide a representativecross-section of the population.

Even when public opinion and other survey data exists, existing surveytechnologies do not offer a mechanism to analyze results across surveysby different pollsters. If the same person responds to two differentsurveys from two different pollsters, the surveys are independent fromone another and results cannot be viewed or analyzed across bothsurveys. Relatedly, despite the myriad survey activities that occurevery day, there currently is no destination, such as a website ormobile application, where one can browse or search a collection ofexisting surveys, on any topic, directly create a new survey if thedesired survey does not exist and publish it on the same website ormobile application. Likewise, there is no mechanism where citizens cango to express their opinion on any topic, have their response accuratelytallied with other constituents, and view results.

Further still, the use of online technologies to develop insights intopotential audiences for targeted distribution of content is known. Theadvertising industry is premised on targeting content to the mostreceptive audience. Despite the widespread use of targeted content, manyproblems still exist including a lack of accuracy of data used to targetcontent, the inability for users to update such data, limited criteriafor selecting an audience, and difficulty in ensuring delivery totargeted individuals.

Therefore, advances in the technology of on-line, computer-implementedsurvey technologies that address the shortcomings of existing systemswould be a welcome advance in the state of the art.

SUMMARY

The instant disclosure describes techniques that address the above-notedshortcomings. In various embodiments, a communication system comprises acommunication network and a plurality of devices operatively connectedto the communication network supporting communication between acorresponding plurality of users. A data manager is operativelyconnected to the communication network and implements a data storecomprising, in some embodiments, data corresponding to included users(i.e., users having associated data in the data store) of the pluralityof users and, in other embodiments, data concerning a plurality ofaction requests presented to the at least some of the plurality ofusers.

In an embodiment, a new action request is received by the data managerfrom any of the plurality of users and stored in the data store. Thedata manager also provides the new action request to at least some ofthe plurality of users and, thereafter, receives responses fromresponsive users. The data manager then stores the responses(optionally, with a time stamp) in the data store in a manner such thatthe responses are associated with corresponding ones of the responsiveusers. In response to receiving a request for information regarding theresponses, the data manager can generate the requested information,which may comprise aggregated or individual data, and provide suchinformation to a requesting user. The information provided may includeor be provided in context of geographic information includingadministrative boundaries (countries, states, counties, municipalities,etc.). In a preferred embodiment, the geographic boundaries maycorrespond to one or more political or electoral districts.

In an embodiment, the data manager receives additional informationregarding a user and stores the additional information (optionally, onceagain, with a time stamp) in the data store in a manner such that theadditional data is associated with the user. Preferably, access to theresponses and/or additional data for a given user in the data store islimited to that user and the data manager. Preferably, the data managermay authenticate at least some of the additional data and/or responses,or authenticate the identity of a user based on at least some of theadditional data and/or responses. Such additional information may bereceived from the user him/herself, from one of the responsive users, orfrom a third-party device or interface operatively connected to thecommunication network.

In an embodiment, the data manager receives information defining anaudience from a submitting user, which information includes criteriabased on the responses and/or additional data in the data store. Arequesting user may provide a request for information concerning theaudience and the data manager can generated the requested informationand provide it to the requesting user. Further still, the data managermay receive content from a content provider and, thereafter, provide thecontent to the audience.

In an embodiment, the data manager receives, from a requesting user, asubscription request for information concerning action requestsimplemented by the data manager. The subscription request includessubscription criteria that may include an identification of a user ofthe plurality of users or a keyword.

In an embodiment, where a new action request has been received andstored, the data manager may provide a user-deployable mechanismcorresponding to the new action request, which mechanism may be providedto other users.

In an embodiment, the data manager may generate a user interfacecomprising at least a portion of the information concerning theplurality of action requests stored in the data store and provide theinformation to one or more of the plurality of devices. Thereafter, thedata manager receives, from a user, an indication to reuse a selectedaction request. In return, the data manager creates a new instance ofthe selected action request. The instance of the selected action requestis associated with the user. The data manager then provides, to theuser, a user-deployable mechanism also associated with the instance ofthe selected action request. Supported by the user-deployable mechanism,the data manager receives responses from responding users and stores theresponses in the data store in a manner such that the responses areassociated with the instance of the selected action request. Informationregarding the responses to the user's instance of the selected actionrequest may be provided to that user or to any other user. Furtherstill, information regarding the responses to a plurality of instances(or subset thereof) of the selected action request may be provided toany user.

In yet another embodiment, variable options for viewing reports based onthe data associated with included users in the data store are providedto a user. Each of the variable options corresponds to an attribute or atype of data in the data store, for example, specific data elementsconcerning user demographics. In turn, the data manager receives anindication of a selected variable option and it is determined whetherthe user's data in the data store includes a value for the attribute ortype of data corresponding to the selected variable option. When theuser's data does include such a value, a report according to theselected variable option (i.e., the attribute or type of data in theuser action data store) is provided to the user via the communicationnetwork. On the other hand, when the user's data does not include such avalue, then a request to provide a value for the attribute or type ofdata corresponding to the selected variable option is sent to the user.Thereafter, the requested value is received by the data manager andstored in the data store according to the attribute or type of datacorresponding to the selected variable option. Thereafter, the reportaccording to the selected variable option is provided to the user.

BRIEF DESCRIPTION OF THE DRAWINGS

The features described in this disclosure are set forth withparticularity in the appended claims. These features and attendantadvantages will become apparent from consideration of the followingdetailed description, taken in conjunction with the accompanyingdrawings. One or more embodiments are now described, by way of exampleonly, with reference to the accompanying drawings wherein like referencenumerals represent like elements and in which:

FIG. 1 is a block diagram of an example of a processing device that maybe used to implement the teachings of the instant disclosure;

FIG. 2 is a block diagram of a communication system in accordance withthe teachings of the instant disclosure;

FIGS. 3A-3C are illustrations of data as stored in a data store inaccordance with the instant disclosure;

FIGS. 4-9 and 12 are flow charts illustrating processing performed by adata manager in accordance with various embodiments of the teachings ofthe instant disclosure; and

FIGS. 10 and 11 are examples of screenshots in accordance with variousembodiments of the teachings of the instant disclosure.

DETAILED DESCRIPTION OF THE PRESENT EMBODIMENTS

FIG. 1 illustrates a representative processing device 100 that may beused to implement the teachings of the instant disclosure. Theprocessing device 100 may be used to implement, for example, one or morecomponents of the system 200, as described in greater detail below.Regardless, the processing device 100 comprises a processor 102 coupledto a machine-readable storage component 104. The storage component 104,in turn, comprises stored executable instructions 116 and data 118. Inan embodiment, the processor 102 may comprise one or more of amicroprocessor, microcontroller, digital signal processor, co-processoror the like or combinations thereof capable of executing the storedinstructions 116 and operating upon the stored data 118. Likewise, thestorage component 104 may comprise one or more devices such as volatileor nonvolatile memory including but not limited to random access memory(RAM) or read only memory (ROM). Further still, the storage component104 may be embodied in a variety of forms, such as a hard drive, opticaldisc drive, floppy disc drive, database and corresponding databasemanagement system (DBMS), etc. Processor and storage arrangements of thetypes illustrated in FIG. 1 are well known to those having ordinaryskill in the art. In one embodiment, the processing techniques describedherein are implemented as a combination of executable instructions anddata within the storage component 104.

As shown, the device 100 may comprise one or more user input devices106, a display 108, a peripheral interface 110, other output devices 112and a network interface 114 in communication with the processor 102.Though the one or more user input devices 106, display 108, peripheralinterface 110, other output devices 112 and the network interface 114are illustrated as being separately connected to or in communicationwith the processor 102, those having skill in the art will appreciatethat the illustrated connections can be implemented by one or morecommunication busses and, further, that such busses may permitcommunication between the various components 104-114. The user inputdevice 106 may comprise any mechanism for providing user input (such asinputs specifying user data, action requests, etc. as described below)to the processor 102. For example, the user input device 106 maycomprise a keyboard, a mouse, a touch screen (as part of the display108), microphone and suitable voice recognition application or any othermeans whereby a user of the device 100 may provide input data to theprocessor 102. The display 108, may comprise any conventional displaymechanism such as a cathode ray tube (CRT), flat panel display, or anyother display mechanism known to those having ordinary skill in the art.In an embodiment, the display 108, in conjunction with suitable storedinstructions 116, may be used to implement a graphical user interface.Generally, implementation of a graphical user interface in this manneris well known to those having ordinary skill in the art. The peripheralinterface 110 may include the hardware, firmware and/or softwarenecessary for communication with various peripheral devices, such asmedia drives (e.g., magnetic disk or optical disk drives), otherprocessing devices (scanners, barcode readers, etc.) or any other inputsource (including other, similar processing devices) used in connectionwith the instant techniques. Likewise, the other output device(s) 112may optionally comprise similar media drive mechanisms, other processingdevices or other output destinations capable of providing information toa user of the device 100, such as speakers, LEDs, tactile outputs, etc.Finally, the network interface 114 may comprise hardware, firmwareand/or software that allows the processor 102 to communicate with otherdevices via wired or wireless networks, whether local or wide area,private or public, as known in the art. For example, such networks mayinclude the World Wide Web or Internet, or private enterprise networks,as known in the art.

While the device 100 has been described as one form for implementing thetechniques described herein, those having ordinary skill in the art willappreciate that other, functionally equivalent techniques may beemployed. For example, as known in the art, some or all of thefunctionality implemented via executable instructions may also beimplemented using firmware and/or hardware devices such as applicationspecific integrated circuits (ASICs), programmable logic arrays, statemachines, etc. Furthermore, other implementations of the device 100 mayinclude a greater or lesser number of components than those illustrated.Once again, those of ordinary skill in the art will appreciate the widenumber of variations that may be used is this manner. Further still,although a single processing device 100 is illustrated in FIG. 1, it isunderstood that a combination of such processing devices may beconfigured to operate in conjunction (for example, using knownnetworking techniques) to implement the teachings of the instantdisclosure.

Referring now to FIG. 2, a communication system 200 in accordance withthe instant disclosure is shown. Specifically, the system 200 comprisesa data manager 202 operatively connected to and in communication with acommunication network 206. Additionally, a plurality of devices 204 arealso operatively connected to and in communication with thecommunication network 206. As described in greater detail below, thedata manager 202 may comprise one or more processing device (asdescribed above relative to FIG. 1) in the form of server computers,database servers or other types of computing devices as known in theart, particularly in connection with, for example, the implementation ofwebsites and/or data stores. In an embodiment, the devices 204 b-c maycomprise processing devices deployed for the use of individual users 205b-c, such as home-use desktop computers, laptop computers or the like.Alternatively, the devices 204 b-c may comprise mobile computing devicessuch as tablet or handheld computers, mobile telephones and the like.Although one-to-one relationships between users 205 b-c and devices 204b-c are illustrated in FIG. 2, this is not a requirement as anindividual user may operate multiple devices or a single device may beused to support multiple users. Further still, the devices 204 maycomprise processing devices 204 a that operate independently of a user,as in the case of a computer or the like capable of operating on behalfof one or more users. In an embodiment, such devices may communicatewith the data manager 202 via a suitable application programminginterface (API), as known in the art. The communication network 206 maycomprise a public network (e.g., the Internet, World Wide Web, etc.) orprivate network (e.g., local area network (LAN), etc.) or combinationsthereof (e.g., a virtual private network, LAN connected to the Internet,etc.). Furthermore, the communication network 206 need not be a wirednetwork only, and may comprise wireless network elements, as known inthe art, capable of communicating with wireless devices.

It is noted that instances of users 205 communicating with the datamanager 202 and vice versa may be described below. Where this phrasingis employed, it is done so for ease of description and it is understoodthat users 205 communicate with the data manager 202 via correspondingdevices 204.

In the illustrated embodiment, the data manager 202 may comprise a webserver 208, an application server 210 and a data store 212. As known inthe art, the web server 208 may comprise one or more processing devicesand corresponding software used to serve content (e.g., respond torequests for content, receive data from connected devices, implementgraphical user interfaces, etc.) on the World Wide Web. Similarly, theapplication server 210 may comprise one or more computing devices andcorresponding software used to implement functions that support theoperation of the web server 208, including the various processingtechniques described herein. The data store 212 may comprise, in anembodiment, one or more processing devices and suitable databasemanagement system (DBMS) used to implement the data store as describedbelow. In operation, for example, the web server 208 communicates withthe devices 204 via the communication network 206 and may provide aninterface that permits devices 204 to provide data (such as new actionrequests, additional data, requests for information, etc. as describedbelow) that is then processed by the application server 210. In someinstances, the application server 210 causes data to be stored in orretrieved from the data store 212, as further described below. Wheredata is to be provided back to one or more of the devices 204, the webserver 208 obtains the necessary data from the application server 210and communicates the data to the relevant devices 204.

In an embodiment, at least a portion of the data handled by theapplication server 210 may be stored in locations accessible by the datamanager 202 only through the communication network 206. For example, oneor more data stores 214, operated by a third-party data storage provideras known in the art, may be used for this purpose. Alternatively, a datastore 207 may be provided in a given device 204 c using the device'slocal machine-readable storage component(s). As further shown in FIG. 2,data employed by the data manager 202 may be obtained from other datasources 216. As described below, such other data sources 216 may includethe data stores of third-parties (similarly implemented as describedabove) having additional data about various ones of the users 205. In anembodiment, the other data sources 216 may communicate with the datamanager via an API.

As shown in FIG. 2, in an embodiment, the data store 212 may include aplurality of action requests 220 and user data 222. As used herein, anaction request is any activity or step taken, or stimulus provided, by auser (or device) in the system 200 that seeks to induce other users torespond in some fashion, which response will result in some form of databeing added to the data store 212. By way of non-limiting examples,action requests 220 may include queries, an invitation to rate/review,etc., all of which may be uniquely identified within the data store 212.In embodiments described below, actions requests may be associated withone or more specific users that created or instantiated the actionrequest.

User data 222 may include any data about a user included in the datastore 212, i.e., an included user. For example, such data may includepersonally identifiable information (PII) or non-personally identifiableinformation (NPII). As used herein, PII includes any data that can beused to effectively identify a given user. Non-limiting examples of PIIinclude a user's name, residential address, phone number, email address,etc. On the other hand, NPII includes any data that cannot be used onits own to identify a given user, though those having skill in the artwill appreciate that NPII can, at times, be cross-referenced with otherexternal data to identify a given user (sometimes referred to as“deanonymization” or “data re-identification”). Non-limiting examples ofNPII include a user's age range, telephone area code, postal code,residential city, residential county, residential state, etc.Optionally, NPII may include data that may be derived from PII, such asan age range and electoral district. Further still, as used herein, userdata may include any detectable actions (or inactions) taken by a givenuser within and outside of the communication system. Non-limitingexamples of such “action based” user data include a response to anyaction request (e.g., a survey or query), a product rating, beingregistered to vote, having obtained a college degree, having scanned abar code, a response to a social media post (e.g., a Facebook “like”), aquery to a search engine, navigating in a browser to a particularwebsite or address, etc. As will be appreciated by those of skill in theart, techniques for ascertaining such actions are well known. Furtherstill, user data 222 may comprise data about users (whether includedpreviously in the data store or not) that is received from third-partysources 216 (i.e., other than the users themselves). Also, as usedherein, additional data about a given user may comprise any of the PIIor NPII data noted above, as distinguished from responses to actionrequests.

Examples of user data as stored in the data store 212 are furtherillustrated with reference to FIGS. 3A-3C. In particular, FIG. 3Aillustrates logical representations of user data arranged into a userprofile data store 302 and user action data store 304. The schemaillustrated in FIG. 3A is based on a schema described in U.S. Pat. No.10,977,386 entitled “METHOD AND APPARATUS FOR DISCONNECTION OF USERACTIONS AND USER IDENTITY” (“the '386 patent”), the teachings of whichare incorporated herein by this reference. In the '386 patent, theillustrated schema is designed to maintain separation and disconnectionbetween user profile data and user action data as a means for enhancingprivacy of users. While the techniques described herein are compatiblewith the techniques described in the '386 patent, it is noted that thetechniques described in the '386 patent are not required for the instantapplication.

Referring once again to FIG. 3A, in the illustrated example, the userprofile data store 302 includes data for two users, Ann Able and BobBaker, and includes both PII 310 and NPII 312. Examples of PII 310include the name, email account, phone number, residential address, anddate of birth of each user, whereas examples of NPII 312, in this case,include each user's gender, political affiliation and ethnicity. Thefields labeled “V?” following certain data fields indicates whether thepreceding data field for a given user has been verified orauthenticated. Thus, in the illustrated example, the residential addressfor Ann Able has been authenticated whereas the residential address forBob Baker has not. In a similar vein, an identity verification field canbe provided indicating whether the identity of the user (as opposed tojust specific data for that user) has been verified; in the illustratedexample, the identify of only Ann Able has been authenticated.

In the illustrated example, the user action data store 304 includes datafor two users who are identified by index values (illustrated as <aa>and <bb> in FIG. 3A) that connect the records in the user action datastore 304 to the records in the user profile data store 302. In theillustrated example, various types of NPII user profile data areillustrated including an age range, gender, political affiliation,ethnicity, religion, postal code, and state representative district.Once again, authentication status indicators for individual data fieldsand/or the user's identity are also provided. Additionally, user actiondata may include third-party data about a given user, i.e., datareceived from one of the other data sources 216.

It is not a requirement that all fields for a given user include avalue. For example, as shown, an ethnicity for Bob Baker is notprovided. As described below, a technique is provided that allows thedata manager to obtain such data from a given user. Additionally, it isnoted that the potential fields for both user profile and user actionsare not limited to the examples shown. In fact, it is anticipated thatsuch fields can be added in an essentially unlimited fashion by virtueof new actions being taken by users and the data manager. Further still,it is once again noted that the arrangement of data fields and recordsas shown in FIG. 3A is for illustrative purposes only, and that those ofordinary skill in the art will appreciate that other arrangements may beequally employed.

FIG. 3B illustrates an action request table comprising several actionrequests. In the illustrated embodiment, each record in the actionrequest table includes: an action request identifier (ID) field thatuniquely identifies that action request, a creator field for storing thename of the user that created or instantiated the action request, anoptional creator organization field that may be used to include anorganization name that the creator is affiliated with, a creation datefield storing the date the action request was created, an instance IDthat uniquely identifies the instance of the action request, an imagelocation field that includes locator information for an image to beincluded with the action request, a language field specifying a languageof the action request, a tags field used to include a classification orcategory for each action request, an action request field that includesa description of the action request itself, and one or more responseoption fields (action 1, . . . ) that set forth the possible responseoptions for the corresponding action request. In the illustratedexamples, the first two action requests are in the form of queries,“Should the electoral college be abolished?” and “Who's your pick to winthe World Series?”, whereas the third action request is in the form ofuser action data (received, for example, from a third-party source via asuitable API) concerning user voter registration status. Note that theresponse option fields for each action request may include myriadpossible values that necessarily depend on the nature of the actionrequest.

FIG. 3C illustrates an action request response table used to store useractions or responses according to the action requests giving rise to theresponses. In the illustrated embodiment, each record in the actionrequest response table includes a reference to the instance request IDthereby linking each response to an instance of an action request, areferring source field that identifies a source from which the responsewas referred (as described below), a user index field that links theresponse to a particular individual user, a time stamp field thatpreferably indicates a time the response was received by the datamanager 202 and a response field for the action response itself. In thisexample, a single response from a user identified by index <dd> isstored to the action request ID 12A4C (“Should the electoral college beabolished?”), whereas two responses to action request ID F2390 (“Who'syour pick to win the World Series?”) from users identified as <ee> and<ff are stored. By maintaining persistent stored data about individualusers, action requests implemented by the data manager as well as auser's response to such action request, the data manager 202 establishesthe foundation for the various operations described herein relative toFIGS. 4-10.

Referring now to FIG. 4, operation in accordance with an embodiment ofthe instant disclosure is illustrated. In particular, FIG. 4 illustratesoperation of the data manager 202 when receiving a new action requestfrom a user. At block 402, the data manager receives a new actionrequest from any user of the plurality of users. As used herein, theplurality of users represents all of those users (and theircorresponding devices) that are capable of communicating with the datamanager and that might or might not have any data stored in the datastore. In contrast, included users are users that already have datastored in the data store relative to the time a new user action requestis created. In an embodiment, a new user action request may be created,and thus received, based on a suitable user interface provided by thedata manager to the user. In particular, each new action request in thisexample includes data corresponding to each of the fields illustrated inFIG. 3B. Thus, using a suitable user interface, the user may be promptedto supply the creator, language, action request and response optionsdata and, optionally, the tags and creator organization data. In anembodiment described below, it is also possible for a user to create aninstance of an existing action request. Techniques for implementing suchuser interfaces suitable for creating action requests as describedherein are known in the art. A feature of the instant disclosure is thatany of the plurality of users is able to communicate with the datamanager (e.g., via a suitable web interface) and create a new actionrequest, which may then be made available to at least some of theplurality of users with other action requests. In this manner, any usercan effectively cause data to be added to user actions in the data storeto the extent that their submitted action request prompts other users torespond.

Thereafter, processing continues at block 404 where the data managerstores the new action request as illustrated, for example, in the actionrequest table of FIG. 3B. Then, at block 406, the data manager providesthe new action request to at least some of the plurality of users.Various techniques may be used for this purpose. For example, in thecase where the data manager implements a website or the like where anyof the plurality of users may access a selection of action requests, thedata manager may cause the new action request to be displayed on a userinterface of the website (see, e.g., FIG. 8 as described below). Inanother embodiment, the data manager can provide a user-deployablemechanism corresponding to the new action request. As used herein, auser-deployable mechanism may include any structure that may be used topresent the new action request to users such that operation of theuser-deployable mechanism by a user will establish communications withthe data manager thereby allowing the user to provide a response to thenew action request directly to the data manager. For example, in anembodiment, the mechanism may comprise a so-called widget, i.e., atypically small software program that may be represented on a graphicaluser interface with a suitable control element (e.g., a button or thelike) that, when selected or actuated by a user, establishes the user'sresponse. By including such a widget in, for example, a websitecontrolled/implemented by the user, that use is effectively able toprovide the new action request to any other users visiting that website.Alternatively, the mechanism may comprise a uniform resource locator(URL) that may likewise be distributed in a similar manner (e.g., viasocial media posts or the like), which URL will redirect a user to thatportion of the data manager website implementing the new action request.Those having skill in the art are familiar with techniques forimplementing such user-deployable mechanisms. In yet another embodiment,the mechanism may comprise a one- or two-dimensional bar code that maybe included in either an on-line or off-line (e.g., a newspaper ormagazine) platform. Using a device equipped with a suitable scanner, auser can scan the bar code and be directed to the data manager or an APIas with the other mechanisms. In this manner, the ability to distributenew action requests widely is greatly enhanced. Furthermore, to theextent that such mechanisms can be provided to anyone seeking toimplement the new action request, multiple instances of the same actionrequest can be implemented across diverse platforms. In addition topermitting users to interact with the data manager, such mechanisms mayalso supply the referring source information illustrated in FIG. 3C tothe extent that they are integrated into a website or other platform, orinclude information designating the referring source.

Referring once again to FIG. 4, processing continues at block 408 wherethe data manager receives responses to the new action request fromresponsive users. Again, as described above, the data manager mayreceive such response in a variety of manners and the instant disclosureis not limited in that regard. Thereafter, at block 410, the datamanager stores the response in the data store such that each response isassociated with the corresponding responsive user from which it wasreceived. Once again, an example of this is illustrated in FIG. 3C wherean index to a user is included in the record for any given response. Inthe case where a user is not already known to the data manager prior toreceiving the response, the data manager may first create a record forthat user (see FIG. 3A) based on whatever user-identifying informationis available to the data manager, and then link the response to that newuser record. As further illustrated in FIG. 3C, each response ispreferably time stamped, in accordance with known techniques. In thecase where a given user responds to an action request multiple times, itbecomes possible to compare responses over time for that individual useror, where such results are aggregated in some form (i.e., acrossmultiple responsive users), to compare aggregated response data atdifferent times.

FIGS. 5-11 illustrate additional processing by the data manager inaccordance with the instant disclosure. It is noted that the processesillustrated in each of FIGS. 5-8 and 11 may each be implementedseparately from each other and the process illustrated in FIG. 4.However, it is also true that the processes illustrated in each of FIGS.5-8 and 11 are compatible with each other and the processing illustratedin FIG. 4.

Referring now to FIG. 5, processing begins at block 502 where the datamanager receives, from a requesting user, a subscription request forinformation concerning action requests implemented by the data manager.In particular, the subscription request includes subscription criteriaused to identify specific action requests that the requesting user wouldlike to be informed about. For example, in one embodiment, thesubscription criteria may include an identification of a specific userwhereas, in another embodiment, the subscription criteria may comprise akeyword. Still further examples of suitable criteria will be readilyapparent to those skilled in the art. In this manner, when thecondition(s) established by a given set of criteria are met by one ormore specific action requests, as illustrated at block 504, processingcontinues at block 506 where information concerning the one or moreaction requests satisfying the criteria are provided to the requestinguser, for example via a suitable user interface or notification. Withreference to the noted exemplary criteria, a user could requestinformation for any action requests created by a certain organization,such as a newspaper or television news channel. Alternatively, anotheruser may request information for any action requests concerning aspecific topic, such as the “Seattle Seahawks.” By combining suchcriteria, it becomes possible to specifically define action requests ofparticular interest to a requesting user.

Referring now to FIG. 6, processing begins at block 602 where the datamanager receives a request for information regarding responses in thedata store from a requesting user. At block 604, the data manager maygenerate the requested information (in the sense of retrieving therequested data from the data store and, optionally, further processingsuch data) and thereafter, at block 606, provide the requestedinformation to the requesting user. For example, the data manager caneither provide aggregated data to the requesting device or individualuser data. For example, and with reference to FIG. 3A, in the case ofaggregated data, if a request for data concerning “all users in the60001 postal code region that believe Trump should be impeached” isreceived, aggregated data for those users meeting the specific criteria(all users in the 60001 postal code that believe Trump should beimpeached) is provided. Thus, aggregated results could be provided inresponse to the request, e.g., “60% of all users in the 60001 postalcode answer yes to ‘Should Trump be impeached?’,” or “Of the respondentsthat answered yes to “Should Trump be impeached?′ 90% were affiliatedwith the Democratic party and 83% were female.” Alternatively, useraction data corresponding to individual records could be generated andprovided at blocks 604 and 606. For example, a request for data may askfor the age range and ethnicity for all respondents living in Washingtonstate that answered yes to the query “Should Trump be impeached?” Inthis case, the requested data for each individual meeting these criteriacould be reported.

Referring now to FIG. 7, processing begins at block 702 where the datamanager receives additional data concerning a given user. As notedabove, additional data may comprise any data concerning a user asidefrom responses to action request. For example, such data may includedata that describe specific characteristics about the user, such aspreferred customer programs the user participates in, specializedprofessional qualification about that user, historical information aboutthat user (e.g., what college he/she graduated from), etc. It is notedthat such additional data may be received from any of a number ofsources and under varying conditions. For example, such additional datamay be received from the given user when providing a response to a givenaction request, or by that user outside the context of providing such aresponse. Further still, such data may be obtained from third-partysources 216 as in the case, for example, where a retailer, seeking togain insights about its customers, provides data concerning its customerloyalty program. In this latter case, user-identifying information inthe third-party data may be compared with user-identifying informationalready found in the data store such that any matches in theuser-identifying data results in the customer loyalty data being addedto existing user records or, where such matches are not found, in thecreation of new user records. In this manner, detailed and expansiverecords concerning individual users may be quickly established throughthird-party resources. Regardless of the manner in which it is obtained,processing continues at block 704 where the additional data is stored inassociation with the user.

At block 706, the data manager can optionally authenticate some or allof the user data, i.e., the responses and/or additional data, or theidentity of the user based on the responses and/or additional data.Various techniques for performing such authentication or verificationare well known in the art. For example, voter registration status can beverified by third party API services. Further still, home address may beverified by various techniques including AVS (Address VerificationSystem) services from credit card processors, and identity verificationservices from credit bureaus, such as Experian's “PRECISE ID” service.As will be appreciated by those having skill in the art, various piecesof data have unique methods used to provide verification thereof, andthe techniques described herein are not dependent upon the specificverification approach used, nor the point in time of collection orverification of such data. Where possible, data is verifiedindependently and are only considered verified when confirmed by atrusted source. Verification may occur at a later point in time and canalso occur over time. For example, a user may provide paymentinformation at a later date, and credit card AVS may then be used toverify their home address. Additionally, it is possible in someinstances to authenticate responses to the extent that conflicts betweenuser data may exist. For example, a given user's data may includeresponses to queries whether that user is registered to vote, or whatcompany that user works at. In this case, the data store may alsoinclude third-party data unrelated to the queries concerning voterregistration and place of employment. If no conflict exists betweenthese responses and the third-party data, the responses may beconsidered authenticated. In the event a response does not match withother objective data (in this case, the third-party data), then it maybe desirable to inform the user of the discrepancy and encourage him/herto update the necessary data.

Referring now to FIG. 8, processing begins at block 802, the datamanager may receive information defining an audience from a submittinguser, where the information defining the audience may comprise criteriabased on responses and/or data in the data store corresponding to any ofthe included users. As used herein, an audience is a logical grouping ofany one or more of the included users based on the provided criteria.Such criteria could be based solely on any attributes found in the userprofile data such as gender, state of residence, political affiliation,etc. Alternatively, or additionally, such criteria could be based on anyattributes found in the user action data such as responses to specificaction requests, e.g., any users that responded “undecided” to anelection poll, or users that expressed anything less that “satisfied” inonline ratings of a given product, or users that have visited (or not) agiven webpage, etc. In an embodiment, such audience-defining informationcould be entered by a user through a suitable web interface, as known inthe art, in which the user is provided with lists of the availableattributes and potential attribute values. Because such attributes canbe expanded and added to over time (and optionally authenticated), asnoted above, the availability of such criteria permits submitting usersto define an audience with comparatively high degree of precision asopposed to prior art techniques.

As further illustrated in FIG. 8, two parallel paths may be pursuedalong blocks 804-806 and/or blocks 808-810. At block 804, the datamanager may receive, from a requesting user, a request for informationconcerning the audience defined at block 802. It is noted that therequesting user at block 804 may be the same as the submitting user atblock 802, or may be another user. This latter scenario may arise wherethe criteria defining the audience at block 802 is stored (for example,in the data store) and identified in such a way that it may be laterprovided to other users for selection. For example, it may be desirableto define separate audiences in a given state and county along politicalaffiliation lines, e.g., one audience defined as residents in Cookcounty Illinois that are registered Democrats versus another audiencedefined as residents in Cook county Illinois that are registeredRepublicans. Once defined, descriptions of these audiences may bepresented to any requesting user (e.g., via a suitable user interface)for selection. Furthermore, the requested information regarding theaudience may be selected according to any of the available attributes(e.g., user profile data or user action data) represented in the datastore. Regardless of the identity of the requesting user and how theaudience was selected, processing may continue at block 806 where thedata manager generates the requested information (gathers and/or furtherprocesses the requested data) and thereafter provides it to therequesting user.

Along the other path, processing may continue at block 808 where thedata manager receives, from a content provider, content to be providedto users defined within the audience. Once again, it is noted that thecontent provider may be the same as the submitting user at block 802, ormay be another user as described above. As used herein, content maycomprise any materials that can be provided to the audience by the datamanager, non-limiting examples of which include electronically-storedadvertising materials, recall notices, governmental publications, etc.Thereafter, at block 810, the content is provided by the data manager tothe users within the audience. In an embodiment, along with the content,the individual users in the group may be provided with an indication asto why they were provided the content, as well as an invitation tocorrect any data in the data store. That is, each user in the audiencemay be informed of the criteria used to define the audience, which theuser can then use to determine whether the attributes in the data storeare correct or outdated. For example, a given user may receive, from thedata manager, an advertisement for heavy-duty boots and is informed thatthey were targeted (i.e., with the defined audience) due to the factthat their corresponding data in the data stored indicates that they area member of a trade union. Such information may include a link or othermechanism to a webpage, for example, where they can correct suchinformation as desired. Based on this, the user may come to appreciatethat this information is out of date, e.g., the user may no longer be inthat trade union, and may thereafter take action to update thecorresponding attribute in the data store. In this manner, data in thedata store may be continually updated, thereby improving the accuracythereof.

Referring now to FIG. 9, processing begins at block 902 where the datamanager generates a user interface comprising at least a portion of theinformation concerning action requests stored in the data store and,thereafter, at block 904, provides this information (i.e., the userinterface) to a user. An example of such an interface 1000 isillustrated in FIG. 10. As shown, the interface may include a number ofselector controls 1002 in the form of buttons, combo box, sliders ortext boxes. For example, buttons defining temporal criteria (“today,”week,” “month,” “year”) are configured, when selected, to causeinformation about action requests (queries, in the illustrated example)to be fetched and displayed. Similarly, a geographical selector,illustrated as a combo box, may be provided to allow selection of agiven geographical attribute for use in filtering action requests to bedisplayed. As further shown, a horizontal slider may be provided thatallows a user to select (or not) only action requests to which the userhas previously responded. Further, a text box is provided for initiatingsearches on stored action requests according to user-defined keywords ortext strings. As further shown, multiple category listings (drawn, forexample, from the “tags” illustrated in FIG. 3B) may be provided in theform of a list box that allows a user to select a particular category ofaction requests. Those of skill in the art will appreciate that furtheruser interface control elements could be equally employed to facilitatethe filtering and selection of available action requests.

Responsive to any selector 1002, 904 choices made, action requestsmeeting the filtering requirements are displayed in a presentation field1006 of the interface 1000. As known in the art, each action requestthus displayed may be selectable. In the illustrated example, theinformation for each action request includes data of the typeillustrated in FIG. 3B including, but not limited to, a descriptionthereof (e.g., “How do you rate the movie La La Land?”), a field settingfor the name of the user that created or instantiated the actionrequest, an organization that the creating user is affiliated with and afield illustrating the creation date for the action request. Theillustrated example also includes a field for each action requestindicating its relative popularity as measured by, for example, thenumber of responses received. In this manner, a user may be presentedwith a wide variety of available action requests for their own use orperusal. In the event that the user is, for example, unable to locate anexisting action request that meets their need or interest, a button 1008is provided that allows the user to define a new action request asdescribed above relative to block 402.

Referring once again to FIG. 9, processing continues at block 906 wherethe data manager receives, from the user, an indication of a selectedaction request from the various action requests provided (displayed) atblock 904. Thereafter, at block 908, the data manager creates aninstance of the selected action request and associates that instancewith the user that created this instance. As shown in FIG. 3B, the datamanager creates an instance ID that allows this instance to be uniquelyidentified. Processing continues at block 910 where the data managercreates a user-deployable mechanism, as described above, that the usercan then employ to distribute the action request to multiple users. Inturn, at block 912, the data manager receives, according to userselection of the user-deployable mechanism, responses to the instance ofthe selected action request from responsive users. At block 914, thedata manager stores the responses in association with the instance ofthe selected action request (as well as the responsive user), asillustrated in FIGS. 3B and 3C. Thereafter, at block 916, the datamanager provides information regarding the responses received and storedat blocks 912, 914 to various possible users. For example, in oneembodiment, the user associated with a given instance of an actionrequest may be provided with information regarding those responsescorresponding to only that instance. Alternatively, the informationabout that specific instance may be provided to users other than theuser associated with that instance. Further still, data across multipleinstances of the selected action request may be collected and presentedto any user. This latter option is particularly powerful to the extentthat it facilitates the “sharing” of response results between instancesof the same action request, regardless of how those separate instanceswere distributed.

As noted above, there may be occurrences where a given user's data isincomplete. To address this, processing by the data manager inaccordance with FIG. 12 may be employed to gather otherwise missing datafor a given user. In particular, the processing of FIG. 12 occurs when arequest for data is received from a given device. In an embodiment, sucha request could be initiated by the device itself, as described aboverelative to FIG. 4. In the embodiment of FIG. 12, at block 1202, thedata manager provides variable options for viewing a report based on thedata in the user action data store to the device (through, for example,the provision of suitable graphical user interface). An example of sucha user interface 1100 is illustrated in FIG. 11. As shown in FIG. 11,each of the variable options 1102 preferably corresponds to a type ofdata in the data store. The provision of the variable options could bedone in response to a specific action previously taken by a user of thedevice, e.g., after responding to a survey query, the data manager couldprovide an interface to the device asking the user whether he/she wouldlike to see the survey results according to the various types of dataincluded in the user action data store. In the illustrated example, thevariable options include gender, age range, religion, ethnicity andpolitical affiliation, in addition to an option to view all resultswithout filtering according to a selected variable option.

Thereafter, at block 1204, the data manager receives an indication of aselected variable option from the device and, at block 1206, determineswhether data in the data store corresponding to the user includes avalue for the type of data corresponding to the selected variableoption. For example, and with reference to FIG. 3, if Ann Able providesa selected variable option corresponding to ethnicity in order to viewresults by ethnicity, the data manager can determine that Ann Ables'sdata does include a value for the ethnicity data field in the useraction data store 304. Conversely, in the case of Bob Baker in this samescenario, the data manager can determine that Bob Baker's data does notinclude a value for the ethnicity data field in the user action datastore 304.

When it is determined that the data field in question does include avalue, processing continues at block 1208 where a report of data basedon the selected variable option is provided by the data manager back tothe device. Alternatively, when it is determined that the data field inquestion does not include a value, processing continues at block 1210,where the data manager causes a request to be sent to the user, whichrequest asks the user to provide a value for the type of datacorresponding to the selected variable option. Thereafter, at block1212, the data manager receives the requested value and stores it in thedata store (as described above) at block 1214. Having thus obtained themissing value, processing continues at block 1216 where the data managerprovides the requested report of data back to the user. Though notillustrated in FIG. 12, if the device fails to provide the requestedvalue in response to the request at block 1210, the data manager maydecline to provide the requested data to the device.

The technique illustrated in FIG. 12 could be refined such that the datamanager only provides variable options for viewing data that correspondto types of data known for the particular user to be lacking acorresponding value. In this way, the data manager is able to moredirectly cause missing data to be gathered. Further still, the requestfor a value of a given data type need not be premised on whether a valuecorresponding to the user already exists in the data store. For example,it may be desirable to make such a request even when such a valuealready exists, as in the case where it is desired to confirm or updatean already existing value.

While particular preferred embodiments have been shown and described,those skilled in the art will appreciate that changes and modificationsmay be made without departing from the instant teachings. It istherefore contemplated that any and all modifications, variations orequivalents of the above-described teachings fall within the scope ofthe basic underlying principles disclosed above and claimed herein.

What is claimed is:
 1. In a communication system comprising apublicly-accessible communication network, a plurality of devicesoperatively connected to the communication network and supportingcommunication between a corresponding plurality of users, and a datamanager operatively connected to the communication network, the datamanager implementing a data store comprising information concerning aplurality of action requests presented to at least some of the pluralityof users and further comprising data associated with included users ofthe plurality of users, a method for obtaining data from at least aportion of the plurality of users, the method comprising: providing, toa first user of the plurality of users, variable options for viewingreports based on the data associated with the included users in the datastore, each of the variable options corresponding to an attribute of thedata associated with the included users, where the data manager providesthe information via the communication network to a device of theplurality of devices corresponding to the first user; receiving, by thedata manager via the communication network from the device correspondingto the first user, an indication of a selected variable option;determining, by the data manager, that data associated with the firstuser in the data store does not include a value for an attribute of thedata associated with the included users corresponding to the selectedvariable option; sending, by the data manager via the communicationnetwork to the device corresponding to the first user, a request toprovide information concerning a value for the attribute correspondingto the selected variable option; receiving, by the data manager via thecommunication network from the device corresponding to the first user,the information concerning the value for the attribute corresponding tothe selected variable option; and storing, by the data manager, theinformation concerning the value as attribute corresponding to theselected variable option in the data store, where the informationconcerning the value is associated in the data store with the firstuser.
 2. The method of claim 1, further comprising: subsequent toreceiving, by the data manager, the information concerning the value forthe attribute corresponding to the selected variable option: providing,by the data manager via the communication network to the devicecorresponding to the first user, a report according to the selectedvariable option.
 3. An apparatus operatively connected to apublicly-accessible communication network, a plurality of devices beingoperatively connected to the communication network and supportingcommunication between a corresponding plurality of users, and a datamanager being operatively connected to the communication network, thedata manager implementing a data store comprising data corresponding toincluded users of the plurality of users and further comprisinginformation concerning a plurality of action requests presented to atleast some of the plurality of users, the apparatus for use in obtainingresponses from at least a portion of the plurality of users, theapparatus comprising: at least one processor; and machine readablestorage, operatively connected to the at least one processor and havingstored thereon instructions that, when executed by the at leastprocessor cause the at least one processor to: provide, to a first userof the plurality of users via the communication network to a device ofthe plurality of devices corresponding to the first user, variableoptions for viewing reports based on the data associated with theincluded users in the data store, each of the variable optionscorresponding to an attribute of the data associated with the includedusers; receive, via the communication network from the devicecorresponding to the first user, an indication of a selected variableoption; determine that data associated with the first user in the datastore does not include a value for an attribute of the data associatedwith the included users corresponding to the selected variable option;send, via the communication network to the device corresponding to thefirst user, a request to provide information concerning a value for theattribute corresponding to the selected variable option; receive, viathe communication network from the device corresponding to the firstuser, the information concerning the value for the attributecorresponding to the selected variable option; and store the informationconcerning the value as attribute corresponding to the selected variableoption in the data store, where the information concerning the value isassociated in the data store with the first user.
 4. The apparatus ofclaim 3, the machine-readable storage further comprising instructionsthat, when executed by the at least one processor, cause the at leastone processor to: subsequent to receiving the information concerning thevalue for the attribute corresponding to the selected variable option,provide, via the communication network to the device corresponding tothe first user, a report according to the selected variable option.